import { ElMessage } from 'element-plus'

/**
 * 处理API响应，检查后端返回的结果并显示相应的消息
 * @param {Object} response - API响应对象
 * @param {string} successMessage - 成功时显示的消息
 * @param {string} defaultErrorMessage - 默认错误消息
 * @returns {boolean} - 是否成功
 */
export function handleApiResponse(response, successMessage = '操作成功', defaultErrorMessage = '操作失败') {
  if (response.data.code === 200) {
    if (successMessage) {
      ElMessage.success(successMessage)
    }
    return true
  } else {
    ElMessage.error(response.data.message || defaultErrorMessage)
    return false
  }
}

/**
 * 处理API错误，显示友好的错误信息
 * @param {Error} error - 错误对象
 * @param {string} defaultMessage - 默认错误消息
 */
export function handleApiError(error, defaultMessage = '操作失败') {
  console.error('API错误:', error)
  
  // 如果是用户取消操作，不显示错误
  if (error === 'cancel' || error.message === 'User canceled the dialog') {
    return
  }
  
  let errorMessage = defaultMessage
  
  if (error.response) {
    // 后端返回错误响应
    const responseData = error.response.data
    if (responseData && responseData.message) {
      errorMessage = responseData.message
    } else if (typeof responseData === 'string') {
      errorMessage = responseData
    }
  } else if (error.message) {
    errorMessage = error.message
  }
  
  ElMessage.error(errorMessage)
}

/**
 * 显示成功消息的工具函数
 * @param {string} message - 成功消息
 */
export function showSuccess(message) {
  ElMessage.success(message)
}

/**
 * 显示错误消息的工具函数
 * @param {string} message - 错误消息
 */
export function showError(message) {
  ElMessage.error(message)
}

/**
 * 显示警告消息的工具函数
 * @param {string} message - 警告消息
 */
export function showWarning(message) {
  ElMessage.warning(message)
}

/**
 * 显示信息消息的工具函数
 * @param {string} message - 信息消息
 */
export function showInfo(message) {
  ElMessage.info(message)
} 